Dada la amplia utilización de XML en la actualidad para el intercambio de información, surge la necesidad de poder almacenar dichos datos. Se pueden diferenciar diversas formas de almacenar dichos documentos:
Directamente en el sistema de archivos: su manejo se vuelve muy complicado.
Utilizando una base de datos especial para almacenar datos XML: es lógico almacenarlo de este modo si nuestra aplicación siempre va a trabajar con XML.
Convertir los datos XML en una representación relacional: esto soluciona algunos problemas pero implica mucho trabajo, con lo que no es la solución más óptima.
Es posible transformar XML a modelo relacional mediante procedimientos propios.
Normalmente, la transformación de los datos XML al modelo relacional es sencillo siempre y cuando el XML haya sido creado siguiendo un esquema relacional.
Las bases de datos relacionales que permitan trabajar con XML proporcionan funciones y lenguajes de consulta para documentos XML (SQL Server, Oracle...). Además, incluyen mecanismos para trabajar con este tipo de datos, como Xpath y XQuery, para poder realizar consultas de datos XML.
Las bases de datos nativas XML (NXD), son bases de datos orientadas a documentos que almacenan de forma óptima documentos XML, por lo que son bases de datos no relacionales.
Almacenan los documentos XML en forma de cadena.
Proveen lenguajes de consulta propios de XML como Xpath y XQuery para la creación de consultas XML.
Motores y lenguajes de NXD:
BaseX: es un sistema gestor de bases de datos XML que contiene un procesador Xquery, desarrollado como un proyecto comunitario en GitHub.
Está especializada en almacenar, consultar y visualizar grandes documentos y colecciones XML.
eXist: sistema de base de datos orientado a documentos NoSQL y una base de datos XML nativa
Sedna: la principal diferencia es que su estrategia de almacenamiento es en clúster y el uso de la memoria.
Ventajas:
Están optimizadas para XML: Si mi dato se entiende como XML en cualquier situación, tiene sentido almacenarlo así.
Poco trabajo de configuración: La administración es sencilla dado que los modelos no pueden ser muy complejos.
Desventajas:
No están extendidas: XML está dejando de ser un estándar. JSON gana mucha popularidad cada día.
Xpath no es divertido: Se trata de un lenguaje muy específico, con una sintaxis muy particular y que sirve para tratar con documentos muy concretos.